<template>
  <div class="container">
    <el-dialog
      :title="formData.id ? '修改标签' : '新增标签'"
      :visible="showDialog"
      width="30%"
      @close="closeDialog"
      @open="openDialog"
    >
      <!-- 表单区域 -->
      <template #default>
        <el-form
          ref="addForm"
          :model="formData"
          :rules="rules"
          label-width="120px"
        >
          <el-form-item
            label="学科名称"
            prop="subjectID"
            v-if="!$route.query.id"
          >
            <el-select v-model="formData.subjectID" placeholder="请选择">
              <el-option
                v-for="item in subjectList"
                :key="item.value"
                :value="item.value"
                :label="item.label"
              />
            </el-select>
          </el-form-item>
          <el-form-item label="标签名称" prop="tagName">
            <el-input
              v-model="formData.tagName"
              style="width:83%"
              placeholder="请输入标签名称"
              @keyup.enter.native="addTags()"
            />
          </el-form-item>
        </el-form>
      </template>
      <!-- 操作区域 -->
      <template #footer>
        <span class="dialog-footer">
          <el-button @click="closeDialog">取 消</el-button>
          <el-button type="primary" @click="addTags">确 定</el-button>
        </span>
      </template>
    </el-dialog>
  </div>
</template>

<script>
import { simple } from "../../api/hmmm/subjects";
import { add, detail, update } from "../../api/hmmm/tags";
export default {
  name: "tags-add",
  props: {
    showDialog: {
      type: Boolean
    }
    /* subjectID: {
      type: Number
    } */
    /*     tagName: {
      type: String
    } */
  },
  data() {
    return {
      formData: {
        subjectID: null, // 学科id
        tagName: null // 标签名称
      },
      // subjectName: "",
      subjectList: [], // 渲染的学科列表
      /* defaultProps: {
        label: "name", // 识别以后端name字段为主 提示用户的文案
        value: "name", // 同上 作为最终选中提交给后端的数据 绑定v-model上的数据
        checkStrictly: true // 单独选中
      }, */
      rules: {
        tagName: [
          {
            required: true,
            message: "请输入标签名称",
            trigger: ["blur", "change"]
          }
        ]
      }
    };
  },
  methods: {
    // 关闭弹框
    closeDialog() {
      this.$emit("close-dialog");
      this.$refs.addForm.resetFields();
      // this.formData = { subjectName: "" };
      // 重置数据
      this.formData = {
        subjectID: null,
        tagName: null
      };
    },
    getTagItem(tag) {
      this.formData = tag;
    },
    // 获取学科列表
    async openDialog() {
      const data = await simple();
      this.subjectList = data.data;
      // console.log(this.subjectList)
    },
    // 点击新增标签 新增/修改
    addTags() {
      this.$refs.addForm.validate(async valid => {
        // 如果校验通过
        if (valid) {
          // 根据id判断调 编辑 / 新增 接口
          // if (this.formData.id) {
          if (this.formData.id) {
            // 有 id 编辑
            await update(this.formData);
          } else {
            // await add({ ...this.formData, ...this.subjectID, ...this.tagName });
            if (this.$route.query.id) {
              this.formData.subjectID = Number(this.$route.query.id);
            }
            await add(this.formData);
          }
          // 提示用户
          this.$message.success(
            `${this.formData.id ? "修改成功" : "新增成功"}`
          );
          this.closeDialog();
        }
      });
    }
    // 获取详情
    /* async getDetail(data) {
      // id在父组件 子组件使用
      const { data: res } = await detail(data);
      this.formData = res;
      // console.log(data)
    } */
  }
};
</script>

<style scoped lang="less"></style>
